/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.Carol.server;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.sql.DataSource;
import org.Carol.client.ExcepcionDeAgenda;
import org.Carol.client.Nuevo;

/**
 *
 * @author ¡¡
 */
public class NuevoImpl extends RemoteServiceServlet implements Nuevo {
  
    @Resource(name = "jdbc/Libros")
    private DataSource ds;
      
    @Override
    public String metodo(String nombre, String autor) {
        Connection c = null;
        PreparedStatement ps = null;
        try {
        c = ds.getConnection();
        ps = c.prepareStatement("INSERT INTO Conocido\n"
            + "(nombre, autor)\n"
            + "VALUES(Carol,=D)");
        ps.executeUpdate();
        } catch (final SQLException ex) {
        log("Error de SQL.", ex);
            try {
                /* Pueden generarse algunos errores que deseeamos
                * conocer en el navegador, como clave duplicada, etc.*/
                throw new ExcepcionDeAgenda(ex.getLocalizedMessage());
            } catch (ExcepcionDeAgenda ex1) {
                Logger.getLogger(NuevoImpl.class.getName()).log(Level.SEVERE, null, ex1);
            }
        } finally {
        if (ps != null) {
            try {
            ps.close();
            } catch (SQLException ex) {
            log("Error al cerrar Statement.", ex);
            }
        }
        if (c != null) {
            try {
            c.close();
            } catch (SQLException ex) {
            log("Error al cerrar Connection", ex);
            }
            }
        }
    
      // Esto es lo que realiza el servidor web.
      return "El servidor web ha recibido los siguientes datos.";
   }
 

}
